package com.ipan.builder.entity;

import com.ipan.builder.BuilderCfg.BuildCfg;
import com.ipan.builder.ext.entity.DefEntityCfg;

/**
 * 实体类操作接口
 * 
 * 说明：
 * 1）.ftl模板可以通过OGNL访问BuilderCfg、BuildCfg、JpaEntityCfg对象以及公共变量、扩展变量；
 * 2）开发人员只要关心.ftl模板文件的编写即可；
 * 
 * @author iPan
 * @version 2013-11-27
 */
public interface EntityOp {
	
	/**
	 * JpaEntityCfg + All BuildCfg
	 */
	public void buildCode(JpaEntityCfg entityCfg);
	
	/**
	 * JpaEntityCfg + BuildCfg
	 */
	public void buildCode(JpaEntityCfg entityCfg, BuildCfg buildCfg);
	
	/**
	 * All JpaEntityCfg + All BuildCfg
	 */
	public void buildAllEntites();
	
	/**
	 * All JpaEntityCfg + BuildCfg
	 */
	public void buildAllEntites(BuildCfg buildCfg);
	
	
	/**
	 * 生成代码
	 * <pre>
	 * 追加对自定义的实体进行代码生成。	2015-01-24
	 * </pre>
	 */
	public void buildCode(DefEntityCfg entityCfg);
	
	/**
	 * 生成代码
	 * <pre>
	 * 追加对自定义的实体进行代码生成。	2015-01-24
	 * </pre>
	 */
	public void buildCode(DefEntityCfg entityCfg, BuildCfg buildCfg);
	
	/**
	 * All DefEntityCfg + All BuildCfg
	 */
	public void buildAllDefEntites();
	
	/**
	 * All DefEntityCfg + BuildCfg
	 */
	public void buildAllDefEntites(BuildCfg buildCfg);
}
